package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.GradeBean;
import com.project.bean.RoleBean;

import javax.management.relation.Role;
import java.util.ArrayList;
import java.util.List;

public interface IRoleService {
    /**
     * 根据角色id数组，查询权限集合，并且去除重复权限
     * @param roles 角色id数组
     * @return 权限集合
     */
    public List<GradeBean> findByRoleArr(Integer[] roles);

    /**
     * 分页查询所有角色
     * @return 角色分页对象
     */
    public IPage<RoleBean> cutAll (Integer pageNO);

    /**
     * 查询所有角色
     * @return 角色集合
     */
    public List<RoleBean> findAll();

    /**
     * 添加新角色，同时添加该角色拥有的权限
     * @param roleBean   角色对象
     * @param gradeArr 角色权限数组
     */
    public void  add(RoleBean roleBean,Integer[] gradeArr);


    /**
     * 处理：1.根据角色id，删除用户拥有的该角色信息
     * 2.根据角色id，删除该角色拥有的权限信息
     * 3.根据角色id，删除角色
     * @param roleId 角色id
     */
    public void del(Integer roleId);

    /**
     * 根据角色id，查询角色信息， 同时查询该角色拥有的权限集合
     * @param roleId 角色id
     * @return 角色对象
     */
    public RoleBean findById(Integer roleId);


    /**
     * 根据角色id，修改角色权限
     * @param roleId 角色id
     * @param gradeIds 角色权限
     */
    public void update(Integer roleId,Integer[] gradeIds);

}
